home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / GRAPHICS / FRXTRSM4.ZIP / FRM / IMPROVED.FRM < prev    next >
Text File  |  1993-02-08  |  18KB  |  819 lines

  1. ;improved.frm
  2. ;comment {
  3. ;
  4. ; FRACTINT.DOC has instructions for adding new formulas to this file.
  5. ; There are several hard-coded restrictions in the formula interpreter:
  6. ;
  7. ; 1) The fractal name through the open curly bracket must be on a single line.
  8. ;
  9. ; 2) There is a hard-coded limit of 200 formulas per formula file, only
  10. ;    because of restrictions in the prompting routines.
  11. ;
  12. ; 3) Formulas can contain at most 250 operations (references to variables and
  13. ;    arithmetic); this is bigger than it sounds, no formula in the default
  14. ;    fractint.frm uses even 100.
  15. ;
  16. ; 3) Comment blocks can be set up using dummy formulas with no formula name
  17. ;    or with the special name "comment".
  18. ;
  19. ; The formulas are listed alphabetically.
  20. ;
  21. ; Note that the builtin "cos" function had a bug which was corrected in
  22. ; version 16.     recreate an image from a formula which used cos before
  23. ; v16, change "cos" in the formula to "cosxx" which is a new function
  24. ; provided for backward compatibility with that bug.
  25. ; }
  26. ;
  27. {==================================================================}
  28.  
  29.  
  30. AltJTet (XAXIS) {; Lee Skinner
  31.    z = p1:
  32.    z = (pixel ^ z) + p1,
  33.        |z| <= (p2 + 3)
  34.   }
  35.  
  36.  
  37. {==================================================================}
  38.  
  39. AltMTet (XAXIS) {; Lee Skinner
  40.    ; try p1 = 1.5
  41.    z = 0:
  42.    z = (pixel ^ z) + pixel,
  43.        |z| <= (p1 + 3)
  44.   }
  45.  
  46.  
  47. {==================================================================}
  48.  
  49. Bogus1 {; Fractal Creations
  50.    ; try p1 = 2 and p2 = 4
  51.    z = 0;
  52.    z = z + p1,
  53.        |z| <= p2
  54.   }
  55.  
  56.  
  57. {==================================================================}
  58.  
  59. CGhalley (XYAXIS) {; Chris Green
  60.    ; try p1 = 1, p2 = 0.0001
  61.    ; note--use floating point
  62.    z   = (1,1):
  63.    z5  = z*z*z*z*z;
  64.    z6  = z*z5;
  65.    z7  = z*z6;
  66.    z8  = z7 - z - pixel;
  67.    z   = z-p1*(z8/ ((7.0*z6-1)-(42.0*z5)*z8/(14.0*z6-2))),
  68.          p2 <= |z8|
  69.   }
  70.  
  71.  
  72. {==================================================================}
  73.  
  74. Cubic (XYAXIS) {; Lee Skinner
  75.    ; try p1 = 2, p2 = 3
  76.    t1 = pixel,
  77.    t2 = t1*t1 + 1
  78.    t3 = 3*t1,
  79.    a  = t2/t3,
  80.    b  = p1*a*a*a + (t2 - 2)/t3,
  81.    d  = p2*a*a,
  82.    z  = 0 - a:
  83.    z  = z*z*z - d*z + b,
  84.         |z| < p1 + 3
  85.   }
  86.  
  87.  
  88. {==================================================================}
  89.  
  90. Dragon (ORIGIN) {; Mark Peterson
  91.    ; try p1 = (-0.74543, 0.2), p2 = 4, fn1 = sqr
  92.    ; note p2 should not be zero
  93.    z = pixel:
  94.    z = fn1(z) + p1,
  95.        |z| <= p2
  96.   }
  97.  
  98.  
  99. {==================================================================}
  100.  
  101. Daisy (ORIGIN) {; Mark Peterson
  102.    ; try p1 = (0.11031, -0.67037) and p2 = 4
  103.    ; note p2 should not be zero
  104.    z = pixel:
  105.    z = z*z + p1,
  106.        |z| <= p2
  107.  
  108.   }
  109.  
  110.  
  111. {==================================================================}
  112.  
  113. DeltaLog (XAXIS) {; Mark Peterson
  114.    ; try p1 = 1, p2 = 4, fn1 = log, fn2 = sqr
  115.    ; note p2 should not be zero
  116.    z = pixel, c = fn1(pixel):
  117.    z = fn2(z) + c/p1,
  118.        |z| <= p2
  119.   }
  120.  
  121.  
  122. {==================================================================}
  123.  
  124. Ent {; Scott Taylor
  125.    ; try p1 = (.5, .75), p1 = 0, p2 = 4, fn1 = exp
  126.    z    = pixel,
  127.    y    = fn1(z)+p1,
  128.    base = log(p1):
  129.    z    = y * log(z)/base,
  130.           |z| <= p2
  131.   }
  132.  
  133.  
  134. {==================================================================}
  135.  
  136. Ent2 {; Scott Taylor
  137.    ; try p1 = 2, fn1 = cos, fn2 = cosh
  138.    ; try potential = 255/355
  139.    z    = pixel,
  140.    y    = fn1(z),
  141.    base = log(p1):
  142.    z    = fn2( y * log(z) / base ),
  143.           |z| <= p1
  144.   }
  145.  
  146.  
  147. {==================================================================}
  148.  
  149. FnDog (XYAXIS)  {; Scott Taylor
  150.    z = pixel,
  151.    b = p1+2:
  152.    z = fn1( z ) * pixel,
  153.        |z| <= b
  154.   }
  155.  
  156.  
  157. {==================================================================}
  158.  
  159. Fzppfncs  {; Lee Skinner
  160.    ; try p1 = 50, fn1 = cos, fn2 = sin
  161.    z = pixel,
  162.    f = 1./fn1(pixel):
  163.    z = fn2(z) + f,
  164.        |z| <= p1
  165.   }
  166.  
  167. Fzppfnct  {; Lee Skinner
  168.    ; try p1 = 50, fn1 = sin, fn2 = cos, fn3 = sin
  169.    z = pixel,
  170.    f = fn2(pixel)/fn3(pixel):
  171.    z = fn1(z) + f,
  172.        |z|<= p1
  173.   }
  174.  
  175.  
  176. Fzppfnpo  {; Lee Skinner
  177.    ; try p1 = 50
  178.    z = pixel,
  179.    f = 2*(pixel)^(pixel):
  180.    z = fn1(z) + f,
  181.        |z| <= p1
  182.   }
  183.  
  184. Fzppfnre  {; Lee Skinner
  185.    ; try p1 = 50 and p2 = 1
  186.    z = pixel,
  187.    f = 1./(pixel):
  188.    z = fn1(z) + f * p2,
  189.        |z| <= p1
  190.   }
  191.  
  192. Fzppfnse  {; Lee Skinner
  193.    ; try p1 = 50, fn1 = sin, fn2 = sin
  194.    z = pixel,
  195.    f = 1./fn2(pixel):
  196.    z = fn1(z) + f,
  197.        |z| <= p1
  198.   }
  199.  
  200. Fzppfnsr  {; Lee Skinner
  201.    ; try p1 = 50
  202.    z = pixel,
  203.    f = (pixel)^.5:
  204.    z = fn1(z) + f,
  205.        |z| <= p1
  206.   }
  207.  
  208. Fzppfnta  {; Lee Skinner
  209.    ; try p1 = 50
  210.    z = pixel,
  211.    f = fn2(pixel):
  212.    z = fn1(z) + f,
  213.        |z|<= p1
  214.   }
  215.  
  216.  
  217. {==================================================================}
  218.  
  219. Gamma (XAXIS)={ ; Jm Richard-Collard
  220.    ; try p1 = 6.2   ; note that p1 above is two times pi
  221.    z = pixel:
  222.    z = (p1*z)^(0.5)*(z^z)*exp(-z)+pixel
  223.    |z|<=p2
  224.   }
  225.  
  226.  
  227. {===============
  228. Halley (XYAXIS) {; Chris Green
  229.    ; try p1 = 1.0 and p2 = 0.0001
  230.    ; note--use floating point
  231.    z  = pixel:
  232.    z5 = z*z*z*z*z;
  233.    z6 = z*z5;
  234.    z7 = z*z6;
  235.    z  = z-p1*((z7-z)/((7.0*z6-1)-(42.0*z5)*(z7-z)/(14.0*z6-2))),
  236.         p2 <= |z7-z|
  237.    }
  238.  
  239.  
  240. {==================================================================}
  241.  
  242. InvMandel (XAXIS) {; Mark Peterson
  243.    ; try p1 = 1, p2 = 4, fn1 = sqr
  244.    ; note p2 should not be zero
  245.    c = z = p1 / pixel:
  246.    z = fn1(z) + c;
  247.        |z| <= p2
  248.   }
  249.  
  250.  
  251. {==================================================================}
  252.  
  253. HalleySin (XYAXIS) {; Chris Green
  254.    ; try p1 = 0.1, p2 = 0.0001, fn1 = sin, fn2 = cos
  255.    ; note--use floating point
  256.    z  = pixel:
  257.    s  = fn1(z),
  258.    c  = fn2(z)
  259.    z=z-p1*(s/(c-(s*s)/(c+c))),
  260.    p2 <= |s|
  261.   }
  262.  
  263.  
  264. {==================================================================}
  265.  
  266. HyperMandel {; Chris Green.
  267.    ; try p1 = 1.8, p2 = 2.0, fn1 = sqr
  268.    ; note--use floating point
  269.    a    = (0,0),
  270.    b    = (0,0):
  271.    z    = z+1
  272.    anew = fn1(a)-fn1(b)+pixel
  273.    b    = p2*a*b+p1
  274.    a    = anew,
  275.           |a|+|b| <= 4
  276.   }
  277.  
  278.  
  279. {==================================================================}
  280. { These types are generalizations of types sent to us by the French
  281.   mathematician Jm Richard-Collard. If we hadn't generalized them
  282.   there would be --ahhh-- quite a few. With 11 possible values for
  283.   each fn variable,Jm_03, for example, has 14641 variations! }
  284.  
  285. Jm_01 {; Jm Richard-Collard
  286.    z = pixel,
  287.    t = p1+4:
  288.    z = (fn1(fn2(z^pixel)))*pixel,
  289.        |z| <= t
  290.   }
  291.  
  292. Jm_02 {; Jm Richard-Collard
  293.    z = pixel,
  294.    t = p1+4:
  295.    z = (z^pixel)*fn1(z^pixel),
  296.        |z| <= t
  297.   }
  298.  
  299. Jm_03 {; Jm Richard-Collard
  300.    z = pixel,
  301.    t = p1+4:
  302.    z = fn1((fn2(z)*pixel)*fn3(fn4(z)*pixel))*pixel,
  303.        |z| <= t
  304.   }
  305.  
  306. Jm_04 {; Jm Richard-Collard
  307.    z = pixel,
  308.    t = p1+4:
  309.    z = fn1((fn2(z)*pixel)*fn3(fn4(z)*pixel)),
  310.        |z| <= t
  311.   }
  312.  
  313. Jm_05 {; Jm Richard-Collard
  314.    z = pixel,
  315.    t = p1+4:
  316.    z = fn1(fn2((z^pixel))),
  317.        |z| <= t
  318.   }
  319.  
  320. Jm_06 {; Jm Richard-Collard
  321.    z = pixel,
  322.    t = p1+4:
  323.    z = fn1(fn2(fn3((z^z)*pixel))),
  324.        |z| <= t
  325.   }
  326.  
  327. Jm_07 {; Jm Richard-Collard
  328.    z = pixel,
  329.    t = p1+4:
  330.    z = fn1(fn2(fn3((z^z)*pixel)))*pixel,
  331.        |z| <= t
  332.   }
  333.  
  334. Jm_08 {; Jm Richard-Collard
  335.    z = pixel,
  336.    t = p1+4:
  337.    z = fn1(fn2(fn3((z^z)*pixel)))+pixel,
  338.        |z| <= t
  339.   }
  340.  
  341. Jm_09 {; Jm Richard-Collard
  342.    z = pixel,
  343.    t = p1+4:
  344.    z = fn1(fn2(fn3(fn4(z))))+pixel,
  345.        |z| <= t
  346.   }
  347.  
  348. Jm_10 {; Jm Richard-Collard
  349.    z = pixel,
  350.    t = p1+4:
  351.    z = fn1(fn2(fn3(fn4(z)*pixel))),
  352.        |z| <= t
  353.   }
  354.  
  355. Jm_11 {; Jm Richard-Collard
  356.    z = pixel,
  357.    t = p1+4:
  358.    z = fn1(fn2(fn3(fn4(z)*pixel)))*pixel,
  359.        |z| <= t
  360.   }
  361.  
  362. Jm_12 {; Jm Richard-Collard
  363.    z = pixel,
  364.    t = p1+4:
  365.    z = fn1(fn2(fn3(z)*pixel)),
  366.        |z| <= t
  367.   }
  368.  
  369. Jm_13 {; Jm Richard-Collard
  370.    z = pixel,
  371.    t = p1+4:
  372.    z = fn1(fn2(fn3(z)*pixel))*pixel,
  373.        |z| <= t
  374.   }
  375.  
  376. Jm_14 {; Jm Richard-Collard
  377.    z = pixel,
  378.    t = p1+4:
  379.    z = fn1